﻿
namespace Needle.Bus
{
    public static class Constants
    {
        public const string NeedleBusNamespace = "needle://bus/";

    }

    public static class BusAddress
    {
        /// <summary>
        /// bus base address
        /// </summary>
        public const string Base = Constants.NeedleBusNamespace + "address/";
        /// <summary>
        /// Unknown address
        /// </summary>
        public const string Unknown = Base + "unknown";
        /// <summary>
        /// Messages that are sent without a destination address get sent here
        /// </summary>
        public const string Router = Base + "router";
        /// <summary>
        /// Trace message address
        /// </summary>
        public const string Tracer = Base + "tracer";
        /// <summary>
        /// Messages that are sent without a destination address get sent here
        /// </summary>
        public const string StageController = Base + "stage-controller";
        /// <summary>
        /// Messages that have an invalid or unknown address get sent here
        /// </summary>
        public const string DeadMessages = Base + "dead-messages";
        /// <summary>
        /// Messages that are rejected by stages get sent here
        /// </summary>
        public const string RejectedMessages = Base + "rejected-messages";
        /// <summary>
        /// Messages that destabilize the bus (e.g. fail to serialize) are sent here.
        /// </summary>
        public const string PoisonMessages = Base + "poison-messages";
    }
}
